package com.gisquest.cloud.entity.po;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

/**
 * @Author guowei
 * @Date 2020/6/24 15:26
 * @Description:保存数据库的对象
 **/
@Data
@Table(name = "bizlog")
public class BizLogDbEntity implements Serializable {
  /**
   *  主键id(后端生成的UUID)
   */
  @Id
  @ApiModelProperty(value = "主键id(后端生成的UUID)")
  String id;
  /**
   * 标识请求来源的应用平台，例如，登记公众版，登记政务版、查档机等各类应用，针对第三方系统，
   * 该标识码与用户标识码一致，查询方式:精确查询
   */
  @ApiModelProperty(value = "标识请求来源的应用平台")
  String appId;
  /**
   * 标识用户请求时的客户端IP，包含用户所在的局域网IP及请求经过的路由器对应的IP，查询方式:包含查询
   */
  @ApiModelProperty(value = "标识用户请求时的客户端IP")
  String clientIp;
  /**
   * 标识用户请求时的客户端MAC地址，查询方式:精确查询
   */
  @ApiModelProperty(value = "标识用户请求时的客户端MAC地址")
  String clientMac;
  /**
   * 登录应用平台的用户名称，查询方式:精确查询
   */
  @ApiModelProperty(value = "登录应用平台的用户名称")
  String staffName;
  /**
   * 标识访问系统的用户唯一标识，如果用户类型为系统，则为分配给系统的系统标识码,否则为具体用户标识码，查询方式:精确查询
   */
  @ApiModelProperty(value = "标识访问系统的用户唯一标识")
  String userId;
  /**
   * 分普通操作用户及系统用户两类，0：普通操作人员，1：系统，查询方式:精确查询
   */
  @ApiModelProperty(value = "分普通操作用户及系统用户两类")
  String userKind;
  /**
   * 登录应用平台的用户登录名，查询方式:精确查询
   */
  @ApiModelProperty(value = "登录应用平台的用户登录名")
  String userName;
  /**
   *业务标识--标识整个业务流程唯一标识，由运维框架生成
   */
  String ywh;
  /**
   *操作标识--标识前端操作唯一标识，由前端生成UUID
   */
  String optId;
  /**
   *请求标识--标识客户端端发起请求的唯一标识。在微服务架构下，使用该标识可串联某一次客户请求后端服务调用链，查询方式:精确查询
   */
  String requestId;
  /**
   *请求时间--服务接收到客户端请求时的时间，查询方式:范围查询
   */
  String requestTime;
  /**
   *服务名称--处理请求服务的方法所在的服务或模块，查询方式:精确查询
   */
  String microName;
  /**
   *服务类型--HTTP(S)、RPC、Webservice、C/S，查询方式:精确查询
   */
  String serviceKind;
  /**
   *请求方法--根据服务类型不同记录不同的值。HTTP(S)记录HTTP请求方法，
   * 例如GET、POST、DELETE等；RPC、Webservice、C/S记录调用方法名称，查询方式:精确查询
   */
  String methodName;
  /**
   *请求地址--根据服务类型不同记录不同的值。
   * HTTP(S)记录HTTP请求URL；Webservice记录服务地址；RPC及C/S记录包名及类名，查询方式:精确查询
   */
  String requestUrl;
  /**
   *请求参数--请求参数为简单类型，参数转换MAP结构作为整体存储，针对HTTP(S)服务请求，
   * 来源于请求的getParameterMap()，
   * 其它类型来源于方法的简单参数，查询方式:包含查询
   */
  String querystring;
  /**
   *请求体--请求参数为复杂类型，HTTP(S)来源于请求Body，其它来源于参数中的复杂数据类型，以json格式存储
   */
  String requestBody;
  /**
   *操作类型--分为查询、更新、删除、新增四种操作，查询方式:精确查询
   */
  String optKind;
  /**
   *请求来源--客户端请求来源页面URL（新系统）
   */
  String requestFrom;
  /**
   *客户端信息--针对HTTP(S)请求客户端浏览器信息
   */
  String useragent;
}
